home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / morse / staton / globals.txt < prev    next >
Text File  |  1994-04-21  |  7KB  |  370 lines

  1. ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!;
  2. ;   COPYRIGHT (C) 1994 KEN STATON    ;
  3. ;         ALL RIGHTS RESERVED        ;
  4. ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!;
  5.  
  6. ;
  7. ; MEMORY DEFINITIONS
  8. ;
  9.  
  10. SP_INIT         .EQU     50H             ; 50H thru 7FH, 48 byte stack.
  11.  
  12. ;
  13. ; REGISTER BANKS
  14. ;
  15.  
  16. ; BANK 0
  17. R0              .EQU    00H
  18. R1              .EQU    01H
  19. R2              .EQU    02H
  20. R3              .EQU    03H
  21. R4              .EQU    04H
  22. R5              .EQU    05H
  23. R6              .EQU    06H
  24. R7              .EQU    07H
  25.  
  26. ; R0 & R1 FOR INDIRECTION (POINTERS)
  27. ;R0 INDEX (GET & MORSE)
  28. ;R1 ISR INDEX (PUT)
  29.  
  30. ; R2 - R7 FOR REGISTER OPS
  31. ;R2 UNUSED
  32. ;R3 IS QFN
  33. ;R4 IS MODE
  34. ;R5 IS MORSE DELAY # UNITS
  35. ;R6 IS DELAY COUNTER STORAGE
  36. ;R7 IS MORSE UNIT DELAY COUNTER
  37.  
  38. ; use register bank 1 as temp memory
  39. DBG        .EQU    08H
  40. DUR        .EQU    09H
  41. RL        .EQU    0AH
  42. RH        .EQU    0BH
  43. PL        .EQU    0CH
  44. PH        .EQU    0DH
  45. TMP2        .EQU    0EH
  46. TMP1        .EQU    0FH
  47.  
  48. ; use register bank 2 as temp memory
  49. SP_INDX         .EQU     10H             
  50. SPSTRT_L        .EQU     11H
  51. ADDR_L        .EQU     11H
  52. SPSTRT_H        .EQU     12H
  53. ADDR_H        .EQU     12H
  54. SPSTOP_L        .EQU     13H
  55. SPSTOP_H        .EQU     14H
  56. BLK_IDX         .EQU     15H
  57. QFN             .EQU     16H
  58. PREV            .EQU     17H
  59.  
  60. ; use register bank 3 as temp memory
  61. CLL             .EQU     18H             
  62. CLH             .EQU     19H
  63. CSL             .EQU     1AH
  64. CSH             .EQU     1BH
  65. ERRNUM          .EQU     1CH
  66. CSPD            .EQU     1DH
  67. FSPD        .EQU     1EH
  68. COUNT           .EQU     1FH
  69.  
  70.  
  71. ;
  72. ; NAMED MEMORY LOCATIONS
  73. ;
  74.  
  75. P0              .EQU    080H
  76. P1              .EQU    090H
  77. P2              .EQU    0A0H
  78. P3              .EQU    0B0H
  79.  
  80. IEC             .EQU    0A8H
  81. IPC             .EQU    0B8H
  82. TMOD            .EQU    089H
  83. TCON            .EQU    088H
  84. TH0             .EQU    08CH
  85. TL0             .EQU    08AH
  86. TH1             .EQU    08DH
  87. TL1             .EQU    08BH
  88. SCON            .EQU    098H
  89. SBUF            .EQU    099H
  90. PCON            .EQU    087H
  91. DPL             .EQU    082H
  92. DPH             .EQU    083H
  93. SP              .EQU    081H
  94. PSW             .EQU    0D0H
  95. B               .EQU    0F0H
  96. ACC             .EQU    0E0H
  97.  
  98.  
  99.  
  100. ;
  101. ; ERROR NUMBERS
  102. ;
  103.  
  104. ;
  105. ; BIT FLAG DEFINITIONS.  
  106. ; BIT ADDRESSABLE from 20H thru 2FH, 16 bytes/128 bits
  107. ; **AVAILABLE** AS BIT ADDRESSABLE: 
  108. ;     20H - 23H, 4 bytes = 32 bits
  109. ;
  110.  
  111. RXD_FLAG        .EQU     00H
  112. RX_OVFL         .EQU     01H
  113. REPLY           .EQU     02H
  114. ERR_FLAG        .EQU     03H
  115.  
  116. SPEAK        .EQU     04H
  117. CODE        .EQU     05H
  118.  
  119. GL        .EQU     06H
  120. GN        .EQU     07H
  121. GP        .EQU     08H
  122. GS        .EQU     09H
  123. ;
  124. ;
  125. ;        .EQU     031H    ; Last bit addressable this allocation
  126.  
  127.  
  128. DLY_B4        .EQU    024H
  129. DLY_AR        .EQU    025H
  130.  
  131. ; **AVAILABLE** AS BYTES:
  132. ; 26H - 4FH UNUSED
  133.  
  134. ;
  135. ; DIRECT ADDRESS DEFINITIONS FOR SFR
  136. ;
  137.  
  138. A_ADDR          .EQU     0E0H
  139. B_ADDR          .EQU     0F0H
  140.  
  141. ;
  142. ; CONTROL CHARACTER DEFINITIONS
  143. ;
  144.  
  145. LF              .EQU     0AH
  146. CR              .EQU     0DH
  147. TAB             .EQU     09H
  148. BS              .EQU     08H
  149. CTLD            .EQU     04H
  150. SPC             .EQU     ' '
  151. DN              .EQU     '/'
  152.  
  153. ;
  154. ; TIMEOUT DEFINITIONS
  155. ;
  156.  
  157.  
  158. ;
  159. ; PORT DEFINITIONS
  160. ;
  161.  
  162.  
  163. ; bit defs
  164. ACC7            .EQU    ACC+7
  165. ACC6            .EQU    ACC+6
  166. ACC5            .EQU    ACC+5
  167. ACC4            .EQU    ACC+4
  168. ACC3            .EQU    ACC+3
  169. ACC2            .EQU    ACC+2
  170. ACC1            .EQU    ACC+1
  171. ACC0            .EQU    ACC+0
  172.  
  173. LED             .EQU    P3+7
  174. SPK             .EQU    P1+7
  175. KEY        .EQU    P3+2
  176. IEC0        .EQU    IEC+0
  177. IEC4            .EQU    IEC+4
  178. INT_EN          .EQU    IEC+7
  179. TI              .EQU    SCON+1
  180. RI              .EQU    SCON+0
  181.  
  182. P3B0            .EQU    P3+0
  183. P3B1            .EQU    P3+1
  184. P3B2            .EQU    P3+2
  185. P3B3            .EQU    P3+3
  186. P3B4            .EQU    P3+4
  187. P3B5            .EQU    P3+5
  188. P3B6            .EQU    P3+6
  189. P3B7            .EQU    P3+7
  190.  
  191. P1B0            .EQU    P1+0
  192. P1B1            .EQU    P1+1
  193. P1B2            .EQU    P1+2
  194. P1B3            .EQU    P1+3
  195. P1B4            .EQU    P1+4
  196. P1B5            .EQU    P1+5
  197. P1B6            .EQU    P1+6
  198. P1B7            .EQU    P1+7
  199.  
  200. ;
  201. ; CONSTANTS
  202. ;
  203.  
  204. TRUE        .EQU    1
  205. FALSE        .EQU    0
  206.  
  207. YES        .EQU    1
  208. NO        .EQU    0
  209.  
  210. ;
  211. ; The following indexes are used in the spoken menu
  212. ;   and for subset membership checks...
  213. ;
  214.  
  215. IDX_A        .EQU    0
  216. IDX_B        .EQU    1
  217. IDX_C        .EQU    2
  218. IDX_D        .EQU    3
  219. IDX_E        .EQU    4
  220. IDX_F        .EQU    5
  221. IDX_G        .EQU    6
  222. IDX_H        .EQU    7
  223. IDX_I        .EQU    8
  224. IDX_J        .EQU    9
  225. IDX_K        .EQU    10
  226. IDX_L        .EQU    11
  227. IDX_M        .EQU    12
  228. IDX_N        .EQU    13
  229. IDX_O        .EQU    14
  230. IDX_P        .EQU    15
  231. IDX_Q        .EQU    16
  232. IDX_R        .EQU    17
  233. IDX_S        .EQU    18
  234. IDX_T        .EQU    19
  235. IDX_U        .EQU    20
  236. IDX_V        .EQU    21
  237. IDX_W        .EQU    22
  238. IDX_X        .EQU    23
  239. IDX_Y        .EQU    24
  240. IDX_Z        .EQU    25
  241.  
  242. IDX_1        .EQU    26
  243. IDX_2        .EQU    27
  244. IDX_3        .EQU    28
  245. IDX_4        .EQU    29
  246. IDX_5        .EQU    30
  247. IDX_6        .EQU    31
  248. IDX_7        .EQU    32
  249. IDX_8        .EQU    33
  250. IDX_9        .EQU    34
  251. IDX_0        .EQU    35
  252.  
  253. IDX_PER        .EQU    36
  254. IDX_COM        .EQU    37
  255. IDX_QM        .EQU    38
  256.  
  257. IDX_DN        .EQU    39
  258. IDX_SK        .EQU    40
  259. IDX_BT        .EQU    41
  260. IDX_AR        .EQU    42
  261. IDX_KN        .EQU    43    ; NOT part of test
  262.  
  263. SETSIZE        .EQU    43    ; excludes KN, since counts from 0
  264.  
  265. PA1        .EQU    0FEH    ; 0FEH is 1mS pause
  266. PA10        .EQU    0FDH    ; 0FDH is 10mS pause
  267. PA100        .EQU    0FCH    ; 0FCH is 100mS pause
  268. PA300        .EQU    0FBH    ; 0FBH is 300mS pause
  269. PA500        .EQU    0FAH    ; 0FAH is 500mS pause
  270.  
  271. QSECDLY        .EQU    250    ; 250 * 1mS
  272.  
  273. ;
  274. ; 6.0 MHz parameters...
  275. ;
  276.  
  277. ONE_MS          .EQU    250     ; 24 cycle instruction loop at 6Mhz = 4 uS
  278.                 ; 4 uS * 250 = 1.0 mS
  279. EIGTH_MS    .EQU    31    ; 4 uS * 31 = 124 uS = 1/8 mS
  280.                 ; less 1 for moves
  281. SP_DLY          .EQU    6    ; empirically set  
  282.  
  283.  
  284. ;
  285. ; 5 wpm = 240mS/dit, 13 wpm = 92mS/dit, 20 wpm = 60mS/dit
  286. ; 16 wpm = 75mS/dit, 18 wpm = 67mS/dit, 23 wpm = 52mS/dit
  287. ;
  288. ; The following durations are for dits (elements) in mS.
  289. ; Note that at 500Hz, one cycle is 2mS, so these numbers are
  290. ; divided by 2 before they are used to generate tone.
  291. ;
  292.  
  293. WPM5        .EQU    240
  294. WPM13        .EQU    92
  295. WPM16        .EQU    75
  296. WPM18        .EQU    68
  297. WPM20        .EQU    60
  298. WPM23        .EQU    52
  299.  
  300. ;
  301. ; The following durations are for cspd delays in word 
  302. ; and character delays.  They are in mS, but must be
  303. ; divided by 2 for the delay counter, since the input
  304. ; is limited to 255 mS.
  305. ;
  306.  
  307. WPM2        .EQU    509     ; mS / 2 = 254 
  308. WPM9        .EQU    132     ; mS / 2 = 66
  309. WMP16        .EQU     75     ; mS / 2 = 37
  310.  
  311. ;
  312. ; The following durations are for speech delays
  313. ; DB -> delay before
  314. ; DA -> delay after
  315. ; in 4 mS units
  316. ;
  317.  
  318. WPM5DB        .EQU    125    ; 0.5 sec
  319. WPM5DA        .EQU    62    ; 0.25 sec
  320.  
  321. WPM13DB        .EQU    100    ; 0.4 sec
  322. WPM13DA        .EQU    50    ; 0.2 sec
  323.  
  324. WPM20DB        .EQU    75    ; 0.3 sec
  325. WPM20DA        .EQU    37    ; 0.15 sec
  326.  
  327. ;
  328. ;
  329.  
  330. HALFBLK         .EQU    32      ; MUST MATCH BLK_SIZE DEFINED IN ADPCM                
  331.  
  332. DC        .EQU    80H    ; DAC MID-POINT = DC
  333. ABS_DC        .EQU    128
  334. REL_DC        .EQU    0
  335.  
  336. DEBOUNCE    .EQU    250    ; 6uS * 50 = 1.5mS
  337.  
  338. NUL        .EQU    0
  339.  
  340. EXIT        .EQU    0
  341. RAN        .EQU    1
  342. SEQ        .EQU    2
  343. GRP        .EQU    3
  344.  
  345. TALK_DLY    .EQU    20
  346.  
  347.         
  348. ;SINE_TBL
  349. ; Values & offset divided by 2 to reduce tone volume
  350. ;
  351. S0        .EQU    (128/2)+(128/2)
  352. S1        .EQU    (177/2)+(128/2)
  353. S2        .EQU    (218/2)+(128/2)
  354. S3        .EQU    (245/2)+(128/2)
  355. S4        .EQU    (255/2)+(128/2)
  356. S5        .EQU    (245/2)+(128/2)
  357. S6        .EQU    (218/2)+(128/2)
  358. S7        .EQU    (177/2)+(128/2)
  359. S8        .EQU    (128/2)+(128/2)
  360. S9        .EQU     (79/2)+(128/2)
  361. S10        .EQU     (38/2)+(128/2)
  362. S11        .EQU     (11/2)+(128/2)
  363. S12        .EQU      (1/2)+(128/2)
  364. S13        .EQU     (11/2)+(128/2)
  365. S14        .EQU     (38/2)+(128/2)
  366. S15        .EQU     (79/2)+(128/2)
  367. S16        .EQU    (128/2)+(128/2)
  368. S_END        .EQU    0    ;TERMINATOR
  369.  
  370.